关于""的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:14:09
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;

import javax.swing.JButton;
import javax.swing.JFrame;

public class TestFlowLayout {
public static void main(String[] args) {
JFrame frame = new JFrame("测试布局管理器");
frame.setSize(500, 400);

//LayoutManager layout = new FlowLayout();
GridLayout layout = new GridLayout();
layout.setHgap(10);
layout.setVgap(10);

frame.setLayout(layout);

JButton[] bs = new JButton[10];
for(int i=0; i<bs.length; i++){
bs[i] = new JButton(""+i);

frame.add(bs[i]);
}

frame.setVisible(true);
}
}
我找了个上面的例子,不明白bs[i] = new JButton(""+i);,其中为什么不可以直接写i, 而要在前面加上两个引号?好象在引号中加上空格效果不变啊!同样,把i和""的位置对调打印效果也没变化啊?包括在定义String a="",也有使用这样的方法,请问是什么原因?如果不这样做还有其他方法能达到同样的效果吗?请详细说明一下.

第一:bs[i] = new JButton(""+i);
你查一下JAVA的API文档就会发现JButton只有如下几种构造方法,JButton() JButton(Action a)JButton(Icon icon) JButton(String text) JButton(String text, Icon icon) ,而没有JButton(int i)所以,使用""+i.
这里有一点就是"" + 1他就等于他1这个int 型的数转换成了String类型.
第二:定义String a = "";是对a初始化.这在企业开发中是必须的, 或者初始化成String a = null;

因为i是一个int型,而new JButton()需要的是一个String,所以就要构造出一个String来,把int变String方法挺多,但最简单的写法可能就是""+i了吧,空字符串加int还是String型.还有方法就是new JButton(new String(i))
或new JButton(Integer.toString(i));